Object-oriented programming  

Prerequisites Experience with a typified imperative programming language like C. Objectives The objectives of the course are that students become familiar with the methodologies and techniques associated with: the object-oriented programming (OOP) paradigm, its advantages, disadvantages, and limitations; design patterns and their use for solving known application development and refactoring problems. Proficiency to be acquired: use of the OOP paradigm (concepts: encapsulation, abstraction, inheritance, and polymorphism); use of an OOP language: Java; use of design patterns to solve application structuring problems; writing test cases for applications. Program Object-oriented Programming and the Java and C++ Languages. Introduction to objects: definitions; longevity; classes; methods; programs. coding conventions. Operators, expressions, and flow control: precedences; assignment; operators; type casts; literals; execution control. Object construction: initialization and clean-up; constructors; method overloading; "this"; garbage collector. Code organization and packages: abstract data types (review); interfaces vs. implementations; libraries; member access control. Inheritance and composition: incremental development; "final"; class loading. Polymorphism; Abstract classes and interfaces. Internal classes. Parametric types. Enumerations; Exceptions; Collections; I/O; Runtime Type Information. Introdution to UML. Class and sequence diagrams. Discussion and application of various design patterns: Singleton, Null Object, Composite, State, Template Method, Strategy, Decorator, Factory Method, Abstract Factory, Command, Observer, Visitor, Adapter, Facade, Proxy. Evaluation Methodology Project: 50% , minimum grade 9.5, with 3 deliveries (UML, intermediate and final) and individual applied final quis. Laboratory exercises: 50% , minimum grade 9.5. All students are evaluated by the same criteria. A 180 min. Quis replaces the laboratory in the special season (época especial). Cross-Competence Component Behaviour identification, analysis and application. Laboratorial Component Individual programming exercises (N), without consultation, every week in class. Only the N-3 best are taken into account. Programming and Computing Component System and modeling analysis. Object oriented programming. Identification and application of design patterns. More information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490010
Presential
English
Object-oriented programming
English

Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or HaDEA. Neither the European Union nor the granting authority can be held responsible for them. The statements made herein do not necessarily have the consent or agreement of the ASTRAIOS Consortium. These represent the opinion and findings of the author(s).